package com.zhangtai.modules.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
public class DimissionAndEmployeeInfoEntity {

	/**
	 * id
	 */
			@TableId
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
		private Long id;

		/**
	 * 申请人
	 */
		private String applyName;
		/**
	 * 申请日期
	 */
		private Date applyDate;

		/**
	 * 入职日期
	 */
		private Date hiredate;

		/**
	 * 职级id
	 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long joblevelId;
		
		/**
		 * 体系id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long job_system_id;
		/**
	 * 职级类别
	 */
		private Integer joblevelType;
		/**
	 * 离职日期
	 */
		private Date dimissionTime;
		/**
	 * 交接人
	 */
		private String associate;
		/**
	 * 主管辅导
	 */
		private String zhudaoScore;
		/**
	 * 薪资报酬
	 */
		private String salaryScore;
		/**
	 * 工作时长
	 */
		private String workTimeScore;
		/**
	 * 培训获得
	 */
		private String trainGetScore;
		/**
	 * 晋升机会
	 */
		private String promotionScore;
		/**
	 * 沟通渠道
	 */
		private String communicationScore;

		/**
		 * 离职原因
		 */
		private String reason;

		private Date createTime;
		
		/**********人员基础信息属性*********/
		/**
		 * 编号
		 */
				@TableId
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
			private Long oid;
	/**
	 * 负责人
	 */
	private String principal;

	/**
	 * 姓名
	 */
			private String name;
			/**
		 * 性别
		 */
			private String gender;
			/**
		 * 身份证号
		 */
			private String idcard;

	/**
	 * 工号
	 */
	private String code;
			/**
		 * 民族
		 */
			private String nation;
			/**
		 * 籍贯
		 */
			private String nativeplace;
			/**
		 * 国籍
		 */
			private String nationality;
			/**
		 * 手机
		 */
			private String mobile;
			/**
		 * 政治面貌
		 */
			private String polity;
			/**
		 * 户口所在地
		 */
			private String regresidence;
			/**
		 * 家庭地址
		 */
			private String address;
			/**
		 * 个人电子邮件
		 */
			private String privatemail;
			/**
		 * 健康状态
		 */
			private String healthstatus;
			/**
		 * 是否退伍兵
		 */
			private String disbandment;
			/**
		 * 婚姻状况
		 */
			private String marital;
			/**
		 * 参加工作日期
		 */
			private Date beginworkdate;
			/**
		 * 生日
		 */
			private Date birthday;
			/**
		 * 操作时间
		 */
			private Date operatetime;
			/**
		 * 0:正常,1:删除
		 */
			private Integer isDelete;
			/**
		 * 0:社招，1：实习生
		 */
			private String socialTrainee;
			/**
		 * 联系方式
		 */
			private String contact;
			/**
		 * 拟录用部门
		 */
			private String unitname;
		/**
		 * 部门id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long unitId;
			/**
			 * * 拟录用公司
		 */
			private String orgname;
	/**
	 * 公司id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long orgId;
			/**
		 * 拟录用岗位
		 */
			private String jobname;
		/**
		 * 职位id
		 */
		@JsonDeserialize(using = LongJsonDeserializer.class)
		@JsonSerialize(using = LongJsonSerializer.class)
		private Long jobId;

	/**
	 * 职级id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
		private Long jobLevelId;
	/**
	 * 职级
	 */
		private String jobLevel;

	@ApiModelProperty(value="职级类别,1:专业职级，2：管理职级",required = false)
	private Integer jobLevelType;

			/**
		 * 管理职级Id
		 */
			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			private Long managementJoblevelId;

	/**
	 * 管理职级
	 */
	private String managementJoblevel;

	/**
	 * 专业职级Id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long professionJoblevelId;

	/**
	 * 专业职级
	 */
	private String professionJoblevel;

			/**
		 * 试用期
		 */
			private Integer probationday;

		/**
		 * 转正日期
		 */
		private Date regularDay;
			/**
		 * 固定月薪
		 */
			private BigDecimal monthlySalary;
			/**
		 * 模块绩效
		 */
			private BigDecimal performance;
			/**
		 * 二维码
		 */
			private String qrcodeUrl;
			/**
		 *  0:新建 ，1：填写完以保存 2：bpm待审批，3：审批完成，4：作废
		 */
			private Integer status;
			/**
		 * 0:未提交，1：提交
		 */
			private Integer preSubmit;
			/**
		 * 招聘渠道
		 */
			private String channel;
			/**
		 * 招聘网站
		 */
			private String recruitmentWeb;
			/**
		 * 推荐人-内部
		 */
			private String innerReferrer;
			/**
		 * 推荐人-外部
		 */
			private String outerReferrer;



			private String flowId;

			private String token;



			private String line;

			private String jobSystem;

	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long jobSystemId;

			@JsonDeserialize(using = LongJsonDeserializer.class)
			@JsonSerialize(using = LongJsonSerializer.class)
			private Long lineId;



	@ApiModelProperty(value="是否公司负责人，null：不是，1：是",required = false)
	private Integer iscentreprincipal;

	@ApiModelProperty(value="是否部门负责人，null：不是，1：是",required = false)
	private Integer isdepartmentprincipa;


	/**
	 * 是否分配了薪资组 薪资组分配情况，0:未分配，1：已分配
	 */
	private Integer isDistribute;

	/**
	 * 薪资组id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long salaryGroupId;

	/**
	 * 薪带宽款监控是否删除，0：正常，1：删除
	 */
	private Integer salaryBandMonitoringIsDelete;


	private Integer flowType;


	/**
	 * 0:新员工，1：复职员工，2：旧员工
	 */
	private Integer isReinstate;

	/**
	 * 转正操作 0:未转正，1：转正 ，2：延期转正 3：不予转正
	 */
	private Integer isRegular;

	/**
	 * 0:转正 未处理，1：已处理
	 */
	private Integer regularIsDone;


	/**
	 * 员工状态
	 */
	@ApiModelProperty(value="员工状态，2：在职，9：实习，3,4,5,6：离职",required = false)
	private String employeestatus;
	
	/**
	 * 标志是否是复职员工，1：在职。2：复职
	 */
	private Integer flag;

	@ApiModelProperty(value="工作地点",required = false)
	private String workAddress;

	/**
	 * 是否发送offer
	 */
	private Integer isOffer;

	/**
	 * 用工类型
	 */
	@ApiModelProperty(value="用工类型",required = false)
	private String jobType;

	/**
	 * 合同类型
	 */
	private String contractType;


	/**
	 * 合同期限类型
	 */
	private String contractTimeType;

	/**
	 * 劳动合同期限
	 */
	private Integer  laborContractYears;



	/**
	 * 甲方主体id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long employerCompanyId;

	/**
	 * 合同生效日期
	 */
	private Date contractBeginDate;
	/**
	 * 合同截止日期
	 */
	private Date contractEndDate;

	/**
	 * 合同签订日期
	 */
	private Date signDate;

	/**
	 * 合同签订人
	 */
	private String signNer;

	/**
	 * 在公司的亲属姓名
	 */
	private String relativeName;
	/**
	 * 亲属身份证
	 */
	private String relativeIdCard;

	/**
	 * 亲属关系
	 */
	private String relationship;

	/**
	 * 亲属所在单位
	 */
	private String relativeUnit;

	private Date updateTime;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 处理状态 0、SSC处理中 1、评分审核中 2、薪酬核定中 3、员工发起中 4、BPM审批中 5、已办结
	 */
	@ApiModelProperty(value="处理状态 0、SSC处理中 1、评分审核中 2、薪酬核定中 3、员工发起中 4、BPM审批中 5、已办结",required = false)
	private Integer dealStatus;
	
	/**
	 * 审批状态：0.待审批，1.已审批，2.驳回
	 */
	private String rurnover_status;
	
	/**
	 * 附件路径
	 */
	private String url_ids;

}
